# 九，房贷计算器
while True:
    loan_type = str(input("请选择贷款类型:1.商业贷款 2.公积金贷款 3.组合贷款 0.退出\n"))
    if loan_type == "0":
        break
    elif loan_type == "1":
        loan_amount = float(input("请输入贷款金额（万）\n"))
        term = int(input("请选择期限(年):5、10、15、20、25\n"))
        if term in [5, 10, 15, 20, 25]:
            if term == 5:
                mon_rate = (4.75 / 100) / 12  # 计算月利率
                # 计算每月应还金额
                mon_pay = loan_amount * 10000 * (mon_rate * ((1 + mon_rate) ** (term * 12))) / (
                    ((1 + mon_rate) ** (term * 12)) - 1)
                # 计算还款总额
                all_pay = mon_pay * term * 12
                # 计算支付利息
                interest = all_pay - loan_amount * 10000
                print("每月月供参考（元）：{:.2f}元".format(mon_pay))
                print("支付利息（元）：{:.2f}元".format(interest))
                print("还款总额（元）：{:.2f}元".format(all_pay))
            else:
                mon_rate = (4.90 / 100) / 12  # 计算月利率
                # 计算每月应还金额
                mon_pay = loan_amount * 10000 * \
                    (mon_rate * ((1 + mon_rate) ** (term * 12))) / \
                    (((1 + mon_rate) ** (term * 12)) - 1)
                # 计算还款总额
                all_pay = mon_pay * term * 12
                # 计算支付利息
                interest = all_pay - loan_amount * 10000
                print("每月月供参考（元）：{:.2f}元".format(mon_pay))
                print("支付利息（元）：{:.2f}元".format(interest))
                print("还款总额（元）：{:.2f}元".format(all_pay))
    elif loan_type == "2":
        loan_amount = float(input("请输入贷款金额（万）\n"))
        term = int(input("请选择期限(年):5、10、15、20、25\n"))
        if term in [5, 10, 15, 20, 25]:
            if term == 5:
                mon_rate = (2.75 / 100) / 12  # 计算月利率
                # 计算每月应还金额
                mon_pay = loan_amount * 10000 * (mon_rate * ((1 + mon_rate) ** (term * 12))) / (
                    ((1 + mon_rate) ** (term * 12)) - 1)
                # 计算还款总额
                all_pay = mon_pay * term * 12
                # 计算支付利息
                interest = all_pay - loan_amount * 10000
                print("每月月供参考（元）：{:.2f}元".format(mon_pay))
                print("支付利息（元）：{:.2f}元".format(interest))
                print("还款总额（元）：{:.2f}元".format(all_pay))
            else:
                mon_rate = (3.25 / 100) / 12  # 计算月利率
                # 计算每月应还金额
                mon_pay = loan_amount * 10000 * \
                    (mon_rate * ((1 + mon_rate) ** (term * 12))) / \
                    (((1 + mon_rate) ** (term * 12)) - 1)
                # 计算还款总额
                all_pay = mon_pay * term * 12
                # 计算支付利息
                interest = all_pay - loan_amount * 10000
                print("每月月供参考（元）：{:.2f}元".format(mon_pay))
                print("支付利息（元）：{:.2f}元".format(interest))
                print("还款总额（元）：{:.2f}元".format(all_pay))
    elif loan_type =="3":
        loan_amount1 = float(input("请输入商业贷款金额（万）\n"))
        loan_amount2 = float(input("请输入公积金贷款金额（万）\n"))       
        term = int(input("请选择期限(年):5、10、15、20、25\n"))
        if term in [5, 10, 15, 20, 25]:
            if term == 5:
                mon_rate1 = (4.75 / 100) / 12  # 计算月利率
                # 商业贷款计算每月应还金额
                mon_pay1 = loan_amount1 * 10000 * (mon_rate1 * ((1 + mon_rate1) ** (term * 12))) / (
                    ((1 + mon_rate1) ** (term * 12)) - 1)
                # 商业贷款计算还款总额
                all_pay1 = mon_pay1 * term * 12
                # 商业贷款计算支付利息
                interest1 = all_pay1 - loan_amount1 * 10000
                #分界线-----------------------
                mon_rate2 = (2.75 / 100) / 12  # 计算月利率
                # 公积金贷款计算每月应还金额
                mon_pay2 = loan_amount2 * 10000 * (mon_rate2 * ((1 + mon_rate2) ** (term * 12))) / (
                    ((1 + mon_rate2) ** (term * 12)) - 1)
                # 公积金贷款计算还款总额
                all_pay2 = mon_pay2 * term * 12
                # 公积金贷款计算支付利息
                interest2 = all_pay2 - loan_amount2 * 10000       
                #组合贷款:
                #组合贷款计算每月应还金额
                mon_pay = mon_pay1 + mon_pay2
                #组合贷款计算支付利息
                interest = interest1 + interest2
                #组合贷款计算还款总额
                all_pay = all_pay1 + all_pay2
                print("每月月供参考（元）:{:.2f}元".format(mon_pay))
                print("支付利息（元）:{:.2f}元".format(interest))
                print("还款总额（元）:{:.2f}元".format(all_pay))               
            else:
                mon_rate1 = (4.90 / 100) / 12  # 计算月利率
                # 商业贷款计算每月应还金额
                mon_pay1 = loan_amount1 * 10000 * (mon_rate1 * ((1 + mon_rate1) ** (term * 12))) / (
                    ((1 + mon_rate1) ** (term * 12)) - 1)
                # 商业贷款计算还款总额
                all_pay1 = mon_pay1 * term * 12
                # 商业贷款计算支付利息
                interest1 = all_pay1 - loan_amount1 * 10000
                #分界线-----------------------
                mon_rate2 = (3.25 / 100) / 12  # 计算月利率
                # 公积金贷款计算每月应还金额
                mon_pay2 = loan_amount2 * 10000 * (mon_rate2 * ((1 + mon_rate2) ** (term * 12))) / (
                    ((1 + mon_rate2) ** (term * 12)) - 1)
                # 公积金贷款计算还款总额
                all_pay2 = mon_pay2 * term * 12
                # 公积金贷款计算支付利息
                interest2 = all_pay2 - loan_amount2 * 10000       
                #组合贷款:
                #组合贷款计算每月应还金额
                mon_pay = mon_pay1 + mon_pay2
                #组合贷款计算支付利息
                interest = interest1 + interest2
                #组合贷款计算还款总额
                all_pay = all_pay1 + all_pay2
                print("每月月供参考（元）：{:.2f}元".format(mon_pay))
                print("支付利息（元）：{:.2f}元".format(interest))
                print("还款总额（元）：{:.2f}元".format(all_pay)) 
    else:
        print("无效的贷款类型，请重新输入")
        continue        